#include <gtest/gtest.h>




/*  
TEST(SqlGeneratorTest, use){

  // 
  TableSchema tab;
  pair = {"columns", (object)v1};
  pairs = {{"columns", (object)v1}, {}, {}};

  //Insert
  // insert into tab-name (col, col) values (v1, v2, v3)
  inserter
    .tab(schema) // get name && column-type & column-name
    .column(pair)
    .column(pair)
    .toString(); //check column-name; & type 
  //replace

  //Update : update tab-name set col1 = v1, col2 = v2 where col3 = v3 and col4 = v4
  //where:   TODO:
  updater
    .tab(schema) // for tab-name
    .set(pairs)
    .where(Express())
    .toString();

  //Delete: delete from tab-name where ...
  //where: TODO: 
  deleter
    .tab(schema)
    .where(Express())
    .toString();
  //
  
  //simpleSelect: 
  // select columns from tab-name
  //where 
  //group by 
  //having ...
  //order by 
  //limit 1, 3
  selecter
    .tab(schema).tab(schema)
    .result(ResultColumns())
    .where(
      //col1 = 1 and (col2 = 2 and col3 = 3)
      Express("col1", 1)
        .and().start().expr("col2", 2).and().expr("col3", 3).end()
        .expr("col4", 4)
        .expr(" col5", 5)
    )
    .groupBy(
      Expresses()
        .expr(Express())
        .expr(Express())
    )
    .having(
      Expresses()
        .expr(Express())
        .expr(Express())
    )
    .orderBy(
      Orderby()
        .expr(Express(), asc)
        .expr(Express, desc)
    )
    .limit(0, 1)
  
  //ResultColumns 
  ResultColumns().asterisk(schema).asterisk(schema).expr(schema, Express(), as).expr(schema, Express, as);
  
  //
  //TODO: Expresses()
  Expresses().expr(Express
  //
  //order by  col asc, col2 desc, ....
  Orderby().expr(Express(), asc).expr(Express, desc);



}*/
